discrete mathematics problems